package ec.edu.ups.rhc.controlador;

import java.util.List;
import java.util.logging.Logger;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;

import org.primefaces.event.RowEditEvent;

import ec.edu.ups.rhc.datos.VueloDAO;
import ec.edu.ups.rhc.modelo.Vuelo;


@ManagedBean
@ViewScoped
public class VueloBean {

	@Inject	private Logger log;
	@Inject	private VueloDAO daoHabitacion;
	@Inject FacesContext context;
	
	private Vuelo vuelo;
	private List<Vuelo> listaVuelo;
	private List<Vuelo> listaVuelosDisponibles;
	
	
	/**
	 * Método que se ejecuta posterior a la creación(instancia) del JavaBean 
	 */
	@PostConstruct
	public void init()
	{
		vuelo=new Vuelo();
		listaVuelo=daoHabitacion.listar();
		listaVuelosDisponibles=daoHabitacion.listarDisponibles();
	}


	/**
	 * Encapsulacion
	 */
	
	public Vuelo getVuelo() {return vuelo;}
	public void setVuelo(Vuelo vuelo) {this.vuelo = vuelo;}
	public List<Vuelo> getListaVuelo() {return listaVuelo;}
	public void setListaVuelo(List<Vuelo> listaVuelo) {this.listaVuelo = listaVuelo;}
	public List<Vuelo> getListaVuelosDisponibles() {return listaVuelosDisponibles;	}
	public void setListaVuelosDisponibles(List<Vuelo> listaVuelosDisponibles) {this.listaVuelosDisponibles = listaVuelosDisponibles;	}
	
	


	/**
	 * Action controllers
	 */
	public String guardar()
	{
		daoHabitacion.insert(vuelo);
		context.addMessage(null, new FacesMessage("Guardado exitoso", "Guardado exitoso") );
		return null;
	}	


	public String actualizar()
	{
		daoHabitacion.actualizar(vuelo);
		context.addMessage(null, new FacesMessage("Edicion exitosa", "Edicion exitosa") );
		return null;
	}
	public void editListener(RowEditEvent event) {
		vuelo = (Vuelo) event.getObject();
		this.actualizar();
	}
	public String eliminar(Vuelo hab)
	{
		this.vuelo=hab;
		vuelo.setEstado(-1);
		actualizar();
		this.listaVuelo.remove(vuelo);
		return null;
	}
	
}
